package br.com.websec.scheduler;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import br.com.websec.cnab.GeraRemessaCNAB;
import br.com.websec.fornecedor.Fornecedor;
import br.com.websec.fornecedor.FornecedorRN;
import br.com.websec.titulo.Titulo;
import br.com.websec.util.UtilException;
import br.com.websec.xml.RecuperaRemessaXML;
import br.com.websec.xml.RemessaXML;
import br.com.websec.xml.TituloXML;



public class AgendadorTarefa implements ServletContextListener {

	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		
		gerarArquivoCnab();
		
		
	}
	
	public synchronized static void gerarArquivoCnab(){
		
		Runnable runnable = new Runnable() {
			
	
			@Override
			public void run() {

				while (true) {
					
					FornecedorRN fornecedorRN = new FornecedorRN();
					List<Fornecedor> listaFornecedor = new ArrayList<Fornecedor>();
					listaFornecedor = fornecedorRN.listar();
					
					if (listaFornecedor != null){
						
					
						for (Fornecedor fornecedor : listaFornecedor) {
							
							List<Titulo> titulos = new ArrayList<Titulo>();
							GeraRemessaCNAB gCnab = new GeraRemessaCNAB();
							titulos = gCnab.titulo(fornecedor.getIdFornecedor());
							try {
								gCnab.gerarArquivoCnab(titulos, fornecedor.getIdFornecedor());

							} catch (IOException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							} catch (UtilException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
						}
					}

					
					//RemessaXML r = RecuperaRemessaXML.lerXml();
					//System.out.println(t.getCodigoRejeicoes());
					
					//TituloXML tXML = new TituloXML();
					
					try {
						//Thread.sleep(10000); // 10 SEGUNDOS
						Thread.sleep(3600000);// 1-HORA						
						
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}

			}
		};

		Thread thread = new Thread(runnable);

		thread.start();
	}

		
	
	
	
	
//	
//	public static synchronized void sincronizarArquivo() {
//
//		Runnable runnable = new Runnable() {
//
//			@Override
//			public void run() {
//
//				while (true) {
//					
//
//					System.out.println("Foi...");
//					RemessaXML r = RecuperaRemessaXML.lerXml();
//					//System.out.println(t.getCodigoRejeicoes());
//					
//					TituloXML tXML = new TituloXML();
//					tXML.salvaTituloXML(r);
//					
//					
//					
//
//					try {
//						Thread.sleep(10000); // 10 SEGUNDOS
//						//Thread.sleep(3600000);// 1-HORA						
//						
//					} catch (InterruptedException e) {
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//				}
//
//			}
//		};
//
//		Thread thread = new Thread(runnable);
//
//		thread.start();
//	}
//
//
//	

}
